<html>
  <head>
    <title>Code coverage for the Jtemplate interpreter</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    <script type="text/javascript">
      <!--
        function jump(id) {
          document.body.scrollTop = document.all[id].offsetTop;
        }
      -->
    </script>
    <script language="javascript" src="file0010.js"></script>
  </head>
  <body>
    <div class="section">File: build/filename_util.ml (<a href="index.html">return to index</a>)</div>
    <br/>
    <hr class="codeSep"/>
    <br/>
    <table>
      <tr>
        <td valign="top" class="section">Statistics:&nbsp;&nbsp;</td>
        <td valign="top">
          <table class="simple">
            <tr><th>kind</th><th width="16px">&nbsp;</th><th>coverage</th></tr>
            <tr><td>binding</td><td width="16px">&nbsp;</td><td>3 / 3 (100 %)</td></tr>
            <tr><td>sequence</td><td width="16px">&nbsp;</td><td>0 / 0 (- %)</td></tr>
            <tr><td>for</td><td width="16px">&nbsp;</td><td>0 / 0 (- %)</td></tr>
            <tr><td>if/then</td><td width="16px">&nbsp;</td><td>4 / 5 (80 %)</td></tr>
            <tr><td>try</td><td width="16px">&nbsp;</td><td>0 / 0 (- %)</td></tr>
            <tr><td>while</td><td width="16px">&nbsp;</td><td>0 / 0 (- %)</td></tr>
            <tr><td>match/function</td><td width="16px">&nbsp;</td><td>5 / 6 (83 %)</td></tr>
          </table>
        </td>
        <td valign="top">
          <table class="simple">
            <tr><th>kind</th><th width="16px">&nbsp;</th><th>coverage</th></tr>
            <tr><td>class expression</td><td width="16px">&nbsp;</td><td>0 / 0 (- %)</td></tr>
            <tr><td>class initializer</td><td width="16px">&nbsp;</td><td>0 / 0 (- %)</td></tr>
            <tr><td>class method</td><td width="16px">&nbsp;</td><td>0 / 0 (- %)</td></tr>
            <tr><td>class value</td><td width="16px">&nbsp;</td><td>0 / 0 (- %)</td></tr>
            <tr><td>toplevel expression</td><td width="16px">&nbsp;</td><td>0 / 0 (- %)</td></tr>
            <tr><td>lazy operator</td><td width="16px">&nbsp;</td><td>2 / 2 (100 %)</td></tr>
          </table>
        </td>
      </tr>
    </table>
    <br/>
    <hr class="codeSep"/>
    <br/>
    <div class="section">Source:</div>
    <br/>
<div style="font-size: smaller;"><a href="javascript:foldAll();">fold all</a> <a href="javascript:unfoldAll();">unfold all</a></div>
    <code>
      <div id="fold000001">
      <div id="line000001" class="lineNone"><a href="javascript:fold('fold000001');"><img border="0" height="10" width="10" src="minus.png" title="fold code"/></a>000001| (**</div>
      <div id="line000002" class="lineNone"><img border="0" height="10" width="10"src="dash.png"/>000002| This&nbsp;program&nbsp;is&nbsp;free&nbsp;software;&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and&nbsp;/&nbsp;or&nbsp;modify</div>
      <div id="line000003" class="lineNone"><img border="0" height="10" width="10"src="dash.png"/>000003| it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;as&nbsp;published&nbsp;by</div>
      <div id="line000004" class="lineNone"><img border="0" height="10" width="10"src="dash.png"/>000004| the&nbsp;Free&nbsp;Software&nbsp;Foundation;&nbsp;version&nbsp;3&nbsp;of&nbsp;the&nbsp;License.</div>
      <div id="line000005" class="lineNone"><img border="0" height="10" width="10"src="dash.png"/>000005| </div>
      <div id="line000006" class="lineNone"><img border="0" height="10" width="10"src="dash.png"/>000006| This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;will&nbsp;be&nbsp;useful,</div>
      <div id="line000007" class="lineNone"><img border="0" height="10" width="10"src="dash.png"/>000007| but&nbsp;WITHOUT&nbsp;ANY&nbsp;WARRANTY;&nbsp;without&nbsp;even&nbsp;the&nbsp;implied&nbsp;warranty&nbsp;of</div>
      <div id="line000008" class="lineNone"><img border="0" height="10" width="10"src="dash.png"/>000008| MERCHANTABILITY&nbsp;or&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE.&nbsp;See&nbsp;the</div>
      <div id="line000009" class="lineNone"><img border="0" height="10" width="10"src="dash.png"/>000009| GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;for&nbsp;more&nbsp;details.</div>
      <div id="line000010" class="lineNone"><img border="0" height="10" width="10"src="dash.png"/>000010| </div>
      <div id="line000011" class="lineNone"><img border="0" height="10" width="10"src="dash.png"/>000011| Filename&nbsp;utilities&nbsp;</div>
      <div id="line000012" class="lineNone"><img border="0" height="10" width="10"src="dash.png"/>000012| </div>
      <div id="line000013" class="lineNone"><img border="0" height="10" width="10"src="dash.png"/>000013| @author&nbsp;Tony&nbsp;BenBrahim&nbsp;&lt;&nbsp;tony.benbrahim&nbsp;at&nbsp;gmail.com&nbsp;&gt;</div>
      <div id="line000014" class="lineNone"><img border="0" height="10" width="10"src="dash.png"/>000014| </div>
      <div id="line000015" class="lineNone"><img border="0" height="10" width="10"src="dash.png"/>000015| *)</div>
      <div id="line000016" class="lineNone"><img border="0" height="10" width="10"src="dash.png"/>000016| </div>
      <div id="line000017" class="lineNone"><img border="0" height="10" width="10"src="dash.png"/>000017| (**&nbsp;</div>
      <div id="line000018" class="lineNone"><img border="0" height="10" width="10"src="dash.png"/>000018| converts&nbsp;a&nbsp;relative&nbsp;filename&nbsp;and&nbsp;path&nbsp;into&nbsp;an&nbsp;absolute&nbsp;filename&nbsp;</div>
      <div id="line000019" class="lineNone"><img border="0" height="10" width="10"src="dash.png"/>000019| @param&nbsp;dir&nbsp;relative&nbsp;of&nbsp;absolute&nbsp;path</div>
      <div id="line000020" class="lineNone"><img border="0" height="10" width="10"src="dash.png"/>000020| @param&nbsp;filename&nbsp;</div>
      <div id="line000021" class="lineNone"><img border="0" height="10" width="10"src="dash.png"/>000021| @return&nbsp;absolute&nbsp;path&nbsp;of&nbsp;file</div>
      <div id="line000022" class="lineNone"><img border="0" height="10" width="10"src="dash.png"/>000022| *)</div>
      <div id="line000023" class="lineNone"><img border="0" height="10" width="10"src="dash.png"/>000023| let&nbsp;resolve_filename&nbsp;dir&nbsp;filename&nbsp;=</div>
      <div id="line000024" class="lineAllVisited"><img border="0" height="10" width="10"src="dash.png"/>000024| &nbsp;&nbsp;(*[20]*)let&nbsp;rec&nbsp;cleanup&nbsp;check&nbsp;ok&nbsp;=</div>
      <div id="line000025" class="lineAllVisited"><img border="0" height="10" width="10"src="dash.png"/>000025| &nbsp;&nbsp;&nbsp;&nbsp;(*[184]*)let&nbsp;right&nbsp;=&nbsp;Filename.basename&nbsp;check&nbsp;in</div>
      <div id="line000026" class="lineAllVisited"><img border="0" height="10" width="10"src="dash.png"/>000026| &nbsp;&nbsp;&nbsp;&nbsp;(*[184]*)let&nbsp;left&nbsp;=&nbsp;Filename.dirname&nbsp;check&nbsp;in</div>
      <div id="line000027" class="lineAllVisited"><img border="0" height="10" width="10"src="dash.png"/>000027| &nbsp;&nbsp;&nbsp;&nbsp;(*[184]*)if&nbsp;((*[184]*)right&nbsp;=&quot;.&quot;&nbsp;&amp;&amp;&nbsp;(*[24]*)Filename.dirname&nbsp;left&nbsp;=&nbsp;left)&nbsp;then</div>
      <div id="line000028" class="lineAllVisited"><img border="0" height="10" width="10"src="dash.png"/>000028| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(*[20]*)Filename.concat&nbsp;left&nbsp;ok</div>
      <div id="line000029" class="lineNone"><img border="0" height="10" width="10"src="dash.png"/>000029| &nbsp;&nbsp;&nbsp;&nbsp;else</div>
      <div id="line000030" class="lineNone"><img border="0" height="10" width="10"src="dash.png"/>000030| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;match&nbsp;right&nbsp;with</div>
      <div id="line000031" class="lineAllVisited"><img border="0" height="10" width="10"src="dash.png"/>000031| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&quot;.&quot;&nbsp;-&gt;&nbsp;(*[4]*)cleanup&nbsp;left&nbsp;ok</div>
      <div id="line000032" class="lineAllVisited"><img border="0" height="10" width="10"src="dash.png"/>000032| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&quot;..&quot;&nbsp;-&gt;&nbsp;(*[2]*)cleanup&nbsp;(Filename.dirname&nbsp;left)&nbsp;ok</div>
      </div>
      <div id="line000033" class="lineAllUnvisited"><img border="0" height="10" width="10"src="blank.png"/>000033| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&quot;&quot;&nbsp;-&gt;&nbsp;(*[0]*)ok</div>
      <div id="fold000034">
      <div id="line000034" class="lineAllVisited"><a href="javascript:fold('fold000034');"><img border="0" height="10" width="10" src="minus.png" title="fold code"/></a>000034| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;_&nbsp;-&gt;&nbsp;(*[158]*)cleanup&nbsp;left&nbsp;(if&nbsp;ok&nbsp;=&quot;&quot;&nbsp;then&nbsp;(*[20]*)right&nbsp;else&nbsp;(*[138]*)Filename.concat&nbsp;right&nbsp;ok)</div>
      <div id="line000035" class="lineNone"><img border="0" height="10" width="10"src="dash.png"/>000035| &nbsp;&nbsp;in</div>
      <div id="line000036" class="lineAllVisited"><img border="0" height="10" width="10"src="dash.png"/>000036| &nbsp;&nbsp;(*[20]*)if&nbsp;Filename.is_relative&nbsp;filename&nbsp;then</div>
      <div id="line000037" class="lineAllVisited"><img border="0" height="10" width="10"src="dash.png"/>000037| &nbsp;&nbsp;&nbsp;&nbsp;(*[20]*)cleanup&nbsp;(Filename.concat&nbsp;dir&nbsp;filename)&nbsp;&quot;&quot;</div>
      <div id="line000038" class="lineNone"><img border="0" height="10" width="10"src="dash.png"/>000038| &nbsp;&nbsp;else</div>
      </div>
      <div id="line000039" class="lineAllUnvisited"><img border="0" height="10" width="10"src="blank.png"/>000039| &nbsp;&nbsp;&nbsp;&nbsp;(*[0]*)filename</div>
    </code>
    <br/>
    <div id="navigator" style="border: solid black 1px; position: fixed; z-index:100; right: 10px; top: 10px; bottom: 10px; width: 16px;">
      <table width="100%" height="100%" border="0" cellspacing="0">
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="red" style="cursor: pointer;" onclick="javascript:jump('line000033');" title="jump to line 33"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="gray"></td></tr>
        <tr><td bgcolor="red" style="cursor: pointer;" onclick="javascript:jump('line000039');" title="jump to line 39"></td></tr>
      </table>
    </div>
    <div class="section">Legend:</div>
    &nbsp;&nbsp;&nbsp;<span class="lineNone">some code</span>&nbsp;-&nbsp;line containing no point<br/>
    &nbsp;&nbsp;&nbsp;<span class="lineAllVisited">some code</span>&nbsp;-&nbsp;line containing only visited points<br/>
    &nbsp;&nbsp;&nbsp;<span class="lineAllUnvisited">some code</span>&nbsp;-&nbsp;line containing only unvisited points<br/>
    &nbsp;&nbsp;&nbsp;<span class="lineMixed">some code</span>&nbsp;-&nbsp;line containing both visited and unvisited points<br/>
    <br/>
    <hr class="codeSep"/>
    <p class="footer">Generated by <a href="http://bisect.x9c.fr">Bisect 1.0-beta</a> on 2009-08-04 01:23:19</p>
  </body>
</html>
